<f:if condition="{configuration.insertAbove}">
    <f:render section="paginator" arguments="{pagination: pagination, configuration: configuration}" />
</f:if>

<f:renderChildren arguments="{contentArguments}" />

<f:if condition="{configuration.insertBelow}">
    <f:render section="paginator" arguments="{pagination: pagination, configuration: configuration}" />
</f:if>

<f:section name="paginator">
    <ul class="f3-widget-paginator">
        <f:if condition="{pagination.previousPage}">
            <li class="previous">
                <f:if condition="{pagination.previousPage} > 1">
                    <f:then>
                        <f:widget.link rel="prev" arguments="{currentPage: pagination.previousPage}" addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}" ><f:translate key="widget.pagination.previous" /></f:widget.link>
                    </f:then>
                    <f:else>
                        <f:widget.link rel="prev" addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}"><f:translate key="widget.pagination.previous" /></f:widget.link>
                    </f:else>
                </f:if>
            </li>
        </f:if>
        <f:if condition="{pagination.displayRangeStart} > 1">
            <li class="first">
                <f:widget.link addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}">1</f:widget.link>
            </li>
        </f:if>
        <f:if condition="{pagination.hasLessPages}">
            <li>…</li>
        </f:if>
        <f:for each="{pagination.pages}" as="page">
            <f:if condition="{page.isCurrent}">
                <f:then>
                    <li class="current">
                        {page.number}
                    </li>
                </f:then>
                <f:else>
                    <li>
                        <f:if condition="{page.number} > 1">
                            <f:then>
                                <f:widget.link arguments="{currentPage: page.number}" addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}">{page.number}</f:widget.link>
                            </f:then>
                            <f:else>
                                <f:widget.link addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}">{page.number}</f:widget.link>
                            </f:else>
                        </f:if>
                    </li>
                </f:else>
            </f:if>
        </f:for>
        <f:if condition="{pagination.hasMorePages}">
            <li>…</li>
        </f:if>
        <f:if condition="{pagination.displayRangeEnd} < {pagination.numberOfPages}">
            <li class="last">
                <f:widget.link arguments="{currentPage: pagination.numberOfPages}" addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}">{pagination.numberOfPages}</f:widget.link>
            </li>
        </f:if>
        <f:if condition="{pagination.nextPage}">
            <li class="next">
                <f:widget.link rel="next" arguments="{currentPage: pagination.nextPage}" addQueryStringMethod="{configuration.addQueryStringMethod}" section="{configuration.section}"><f:translate key="widget.pagination.next" /></f:widget.link>
            </li>
        </f:if>
    </ul>
</f:section>
